最近做專案,正好做到 搜尋的功能,
今天就稍微紀錄一下囉!
對先前的form 還有印象嗎?讓我們來快速複習一下:
預備知識:
Step1. 建立搜尋表單。
# app/views/events/index.html.erb
<%= form_tag(events_path, :method => "get") do %>
<%= text_field_tag :search %>
<%= submit_tag "Search" ,:event_name => nil ,class: "but-primary"%>
Step2. 將參數[:search]加入到 EventsController 裡。
前面在表單裡填入的關鍵字將會被包在params中傳進來。
# app/controllers/events_controller.rb
class EventsController < ApplicationController
def index
@events = Event.all.search(params[:search])
end
end
def index
#@events = Event.all.search(params[:search])
render html: params[:search]
end
Step3. 在Event Model中建立一個search的方法。
針對在搜索表單中輸入的關鍵字將以search方法進行處理。
如果有一個與關鍵字匹配的用戶名,結果將顯示在頁面上。
如果沒有部分匹配的用戶名,則所有用戶名將顯示為所有列表。
#app/models/event.rb
def self.search(search)
if search
where(['event_name LIKE ?', "%#{search}%"]) #
else
all
end
end
嗯,大概就是這樣啦!鐵人賽我們明天見!!
參考資料:
Simple Search Form in Rails
Creating A Search Form In Rails 5
【rails入門】検索フォームを簡単に実装する方法